﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using EventosTdd.Core.Entities;

namespace EventosTdd.Core.Data
{
    public class EventoRepository
    {
        private IList<Evento> ListaEventos = new List<Evento>();

        public EventoRepository()
            :this(new List<Evento>())
        {
        }

        public EventoRepository(IList<Evento> ListaEventos)
        {
            this.ListaEventos = ListaEventos;
        }

        public IQueryable<Evento> GetEventos()
        {
            return this.ListaEventos.AsQueryable();
        }

        public void AddEvento(Evento Evento)
        {
            int IdMaximo = 0;

            if (ListaEventos.Count() > 0)
                IdMaximo = ListaEventos.Max(e => e.Id);

            Evento.Id = IdMaximo + 1;
            ListaEventos.Add(Evento);
        }

        public void DeleteEvento(int Id)
        {
            var Evento = this.ListaEventos.Where(e => e.Id == Id).FirstOrDefault();
            ListaEventos.Remove(Evento);
        }

        public void EditEvento(Evento Evento)
        {
            var EventoAEditar = this.ListaEventos.Where(e => e.Id == Evento.Id).FirstOrDefault();
            EventoAEditar.Nombre = Evento.Nombre;
            ListaEventos.Remove(Evento);
        }
    }
}
